package com.fulin.leetcode;

/**
 * @Description 给定一个整数判断是否是回文数
 * @Author fulin16
 * @Date 2020/10/23 16:31
 **/
public class Num9 {
    public static void main(String[] args) {
        Num9 n = new Num9();
        System.out.println(n.isPalindrome(10));
    }


    //去x的一半回文后比较的算法，这样做的目的是防止回文的时候溢出
    public boolean isPalindrome(int x) {
        if(x < 0 ) return false;
        if(x < 10) return true;

        if(x % 10 == 0 && x != 0){  //如果x是已0结尾那么要满足回文数则该数字一定是0
            return false;
        }

        int val = 0;
        while(val < x){
            int right = x % 10;     //取最右边的数
            x = x / 10;             //去掉x最右边的数
            val  = val * 10 + right;
        }

        return x == val || x == val / 10;
    }
}
